home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
MACD 5
/
MACD 5.bin
/
workbench
/
libs
/
datamaster_lib.lha
/
Datamaster
/
Developer
/
Examples
/
Asm
/
recognizers
/
Executable
< prev
next >
Wrap
Text File
|
1997-05-01
|
1KB
|
87 lines
section "Recognizer",code
incdir "includes:"
include "asm:datamaster.library/datamaster.i"
include "asm:datamaster.library/datamaster_lib.i"
;EXEC
incdir "includes:"
include "exec/exec_lib.i"
include "exec/exec.i"
RECOHEADER reco
reco: dc.l DMR_DMVersion,2
dc.l DMR_Version,1<<16+2
dc.l DMR_SubTypesTable,CheckTable
dc.l DMR_Name,exename
dc.l DMR_Descr,exeDescr
dc.l DMR_Flags,RECOF_CheckData+RECOF_CheckPatt
dc.l DMR_Class,DMCLASSF_SYSTEM
dc.l DMR_Pri,PRI_FREQUENT
dc.l TAG_END
prog_c:
lib_c:
dev_c:
move.l (a0),d1
cmp.l #$3f3,d1
beq.s .ok
moveq #0,d0
rts
.ok: move.l a0,a1
cmp.l #512,d0
blo.s .ok2
move.l #512,d0 ;d0= min(d0,512)
.ok2: lsr.l #1,d0 ;/2
.loop: move.w (a0)+,d1
cmp.w #RTC_MATCHWORD,d1
beq.s .found
dbra d0,.loop
bra.s .end0
;I don't check for the validity of the "magic" APTR after RTC_MATCHWORD
;but it's Ok anyway.
.found:
lea -2(a0),a0
move.b RT_TYPE(a0),d0
lea lib_n(pc),a1
cmp.b #NT_LIBRARY,d0
beq.s .end
lea dev_n(pc),a1
cmp.b #NT_DEVICE,d0
beq.s .end
.end0: lea exename(pc),a1
.end: move.l a1,d0
rts
exeDescr:
dc.b "Progs,libs,handlers etc...!",0
exename:
dc.b "Executable",0
dev_p: dc.b "*."
dev_n: dc.b "Device",0,$ff
lib_p: dc.b "*."
lib_n: dc.b "Library",0,$ff
even
CheckTable:
dc.l prog_c,-1,exename
dc.l lib_c,lib_p,lib_n
dc.l dev_c,dev_p,dev_n
dc.l 0,0,0